﻿using System;
namespace Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik {
    
    
    public partial class Ametnik : global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.Isik, global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAmetnik {
        
        private global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IJuriidilineIsik @__organisatsiooniyksus;
        
        private string @__organisatsiooniyksusCSV;
        
        private System.Int64? @__ametKL;
        
        private string @__eesnimi;
        
        private System.Int64? @__tootamiseObjektID;
        
        public Ametnik() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public Ametnik(
                    global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IJuriidilineIsik @organisatsiooniyksus, 
                    string @organisatsiooniyksusCSV, 
                    System.Int64? @ametKL, 
                    string @eesnimi, 
                    System.Int64? @tootamiseObjektID, 
                    System.Int64? @objektID, 
                    System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKontakt> @kontaktid, 
                    string @kood, 
                    string @koosnimi, 
                    string @nimi, 
                    System.Int64? @seisundKL, 
                    System.Int64? @versID, 
                    System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKohustis> @kohustised, 
                    System.DateTime? @algusKP, 
                    string @alustaja, 
                    System.DateTime? @loppKP, 
                    System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKonto> @kontod, 
                    System.Int64? @menetlusSubjektiLiikKL, 
                    string @muudeRiikideKoodid, 
                    System.Collections.Generic.List<System.Int64?> @tegevusalaKL, 
                    System.DateTime? @verAlgusKP, 
                    System.DateTime? @verLoppKP, 
                    System.DateTime? @koostamiseKP, 
                    System.Boolean? @ainultPohiandmed, 
                    System.DateTime? @sisestamiseKP, 
                    string @sisestaja, 
                    System.DateTime? @muutmiseKP, 
                    string @muutja, 
                    System.DateTime? @sulgemiseKP, 
                    string @markused, 
                    string @klientsysteemiID, 
                    System.DateTime? @karistusteYlevaatamiseKP, 
                    System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus> @hoiatused, 
                    string @eelnevadKoosnimedCSV, 
                    System.Boolean? @onValideeritudAktuaalneVersioon) : 
                base(@objektID, @kontaktid, @kood, @koosnimi, @nimi, @seisundKL, @versID, @kohustised, @algusKP, @alustaja, @loppKP, @kontod, @menetlusSubjektiLiikKL, @muudeRiikideKoodid, @tegevusalaKL, @verAlgusKP, @verLoppKP, @koostamiseKP, @ainultPohiandmed, @sisestamiseKP, @sisestaja, @muutmiseKP, @muutja, @sulgemiseKP, @markused, @klientsysteemiID, @karistusteYlevaatamiseKP, @hoiatused, @eelnevadKoosnimedCSV, @onValideeritudAktuaalneVersioon) {
            this.@__organisatsiooniyksus = @organisatsiooniyksus;
            this.@__organisatsiooniyksusCSV = @organisatsiooniyksusCSV;
            this.@__ametKL = @ametKL;
            this.@__eesnimi = @eesnimi;
            this.@__tootamiseObjektID = @tootamiseObjektID;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected Ametnik(IAmetnik @ametnik) : 
                base(@ametnik.ObjektID, @ametnik.Kontaktid, @ametnik.Kood, @ametnik.Koosnimi, @ametnik.Nimi, @ametnik.SeisundKL, @ametnik.VersID, @ametnik.Kohustised, @ametnik.AlgusKP, @ametnik.Alustaja, @ametnik.LoppKP, @ametnik.Kontod, @ametnik.MenetlusSubjektiLiikKL, @ametnik.MuudeRiikideKoodid, @ametnik.TegevusalaKL, @ametnik.VerAlgusKP, @ametnik.VerLoppKP, @ametnik.KoostamiseKP, @ametnik.AinultPohiandmed, @ametnik.SisestamiseKP, @ametnik.Sisestaja, @ametnik.MuutmiseKP, @ametnik.Muutja, @ametnik.SulgemiseKP, @ametnik.Markused, @ametnik.KlientsysteemiID, @ametnik.KaristusteYlevaatamiseKP, @ametnik.Hoiatused, @ametnik.EelnevadKoosnimedCSV, @ametnik.OnValideeritudAktuaalneVersioon) {
            this.@__organisatsiooniyksus = @ametnik.Organisatsiooniyksus;
            this.@__organisatsiooniyksusCSV = @ametnik.OrganisatsiooniyksusCSV;
            this.@__ametKL = @ametnik.AmetKL;
            this.@__eesnimi = @ametnik.Eesnimi;
            this.@__tootamiseObjektID = @ametnik.TootamiseObjektID;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        public Ametnik(IIsik @isik) : 
                base(@isik) {
        }
        
        public virtual global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IJuriidilineIsik Organisatsiooniyksus {
            get {
                return this.@__organisatsiooniyksus;
            }
            set {
                this.@__organisatsiooniyksus = value;
            }
        }
        
        public virtual string OrganisatsiooniyksusCSV {
            get {
                return this.@__organisatsiooniyksusCSV;
            }
            set {
                this.@__organisatsiooniyksusCSV = value;
            }
        }
        
        public virtual System.Int64? AmetKL {
            get {
                return this.@__ametKL;
            }
            set {
                this.@__ametKL = value;
            }
        }
        
        public virtual string Eesnimi {
            get {
                return this.@__eesnimi;
            }
            set {
                this.@__eesnimi = value;
            }
        }
        
        public virtual System.Int64? TootamiseObjektID {
            get {
                return this.@__tootamiseObjektID;
            }
            set {
                this.@__tootamiseObjektID = value;
            }
        }
    }
}
